/**
 *====================================================
 * 文件名称: StatisticsEnterpriseActionApi.java
 * 修订记录：
 * No    日期				作者(操作:具体内容)
 * 1.    2015年11月13日			chenxy(创建:创建文件)
 *====================================================
 * 类描述：(说明未实现或其它不应生成javadoc的内容)
 */
package com.yuexunit.finance.statistics.action.v1;

import java.util.List;

import com.yuexunit.finance.context.FinVersion1;
import com.yuexunit.finance.project.action.v1.model.ClientCreditLineDetail;
import com.yuexunit.finance.project.action.v1.model.ReceivePaymentDetail;
import com.yuexunit.finance.project.action.v1.model.output.ProductRankingDetail;
import com.yuexunit.finance.project.action.v1.model.output.RankingDetail;
import com.yuexunit.finance.statistics.action.v1.model.EnterpriseAreas;
import com.yuexunit.finance.statistics.action.v1.model.EnterpriseFinanceSummaryDetail;
import com.yuexunit.finance.statistics.action.v1.model.EnterpriseSummaryDetail;
import com.yuexunit.finance.statistics.action.v1.model.ManagerBordDetail;
import com.yuexunit.finance.statistics.action.v1.model.NameAndValueInfo;
import com.yuexunit.finance.statistics.action.v1.model.ProcessFinanceApplication;
import com.yuexunit.finance.statistics.action.v1.model.SalesFunnelInfoResult;
import com.yuexunit.page.PageCriteria;
import com.yuexunit.page.PageList;
import com.yuexunit.web.annotation.Action;
import com.yuexunit.web.annotation.Parameter;
import com.yuexunit.web.annotation.Permission;

/** 
 * @ClassName: StatisticsEnterpriseActionApi 
 * @Description: TODO(这里用一句话描述这个类的作用) 
 * @author chenxy 
 * @date 2015年11月13日 上午9:46:14  
 */
public interface StatisticsEnterpriseActionApi {

	@Permission
	@Action(version = FinVersion1.class, description = "查询企业融资汇总信息-企业帐号可不传后台自动绑定")
	public PageList<EnterpriseFinanceSummaryDetail> inquireEnterpriseFinanceSummaryPageList(
			@Parameter(name = "enterpriseId", description = "企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "enterpriseType", description = "客户类型", nullable = true) Integer enterpriseType,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询企业融资汇总信息-企业帐号可不传后台自动绑定")
	public EnterpriseFinanceSummaryDetail inquireEnterpriseFinanceSummaryDetail(
			@Parameter(name = "enterpriseId", description = "企业ID") Long enterpriseId
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询企业融资汇总信息")
	public ManagerBordDetail inquireManagerBordDetail();
	
	@Action(version = FinVersion1.class, description = "查询排行信息")
	public List<RankingDetail> inquireEnterpriseArea();
	
	@Action(version = FinVersion1.class, description = "查询收付款信息-按地区")
	public ReceivePaymentDetail inqurieReceivePaymentListByArea();

	@Action(version = FinVersion1.class, description = "查询排行信息")
	public List<RankingDetail> inquireRankingDatas(
			@Parameter(name = "type", description = "排行因素 1:货品 2:客户 3:客户+货品 4:货品+客户") Integer type,
			@Parameter(name = "enterpriseId", description = "企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "bulkstockInfoId", description = "大宗商品ID", nullable = true) Long bulkstockInfoId
	);

	@Permission
	@Action(version = FinVersion1.class, description = "查询收付款动态")
	public ReceivePaymentDetail inqurieReceivePaymentDetail(
			@Parameter(name = "type", description = "﻿类型 1:累计 2:当月 3:当日 4:近三十日", nullable = true) Integer type
	);
	
	@Permission
	@Action(version = FinVersion1.class, description = "查询收付款动态")
	public List<ClientCreditLineDetail> inqurieReceivePaymentList(
			@Parameter(name = "年", description = "﻿年", nullable = true) Integer year,
			@Parameter(name = "type", description = "﻿类型 1:累计 2:当月 3:当日", nullable = true) Integer type,
			@Parameter(name = "distributors", description = "﻿是否分销商", nullable = true) Boolean distributors
	);
	
	@Action(version = FinVersion1.class, description = "查询排行信息")
	public List<ProductRankingDetail> inquireLoanRankingDatas();
	
	@Action(version = FinVersion1.class, description = "查询企业所在城市经纬度")
	public EnterpriseAreas inquireEnterpriseLocation();
	
	@Action(version = FinVersion1.class, description = "销售漏斗项目金额与客户数量")
	public SalesFunnelInfoResult getSalesFunnelReportforms();
	
	@Action(version = FinVersion1.class, description = "业务经理贡献收益比")
	public List<NameAndValueInfo> inquireFollowPersonRanking();
	
	@Action(version = FinVersion1.class, description = "昨日收益")
	public ProductRankingDetail inquireYestodayEarnings();
	
	@Action(version = FinVersion1.class, description = "近七日收放款")
	public ProductRankingDetail inquireSevenDayEarnings();

//	@Permission
	@Action(version = FinVersion1.class, description = "查询企业融资汇总信息-企业帐号可不传后台自动绑定")
	public EnterpriseSummaryDetail inquireEnterpriseSummaryDetail(
			@Parameter(name = "enterpriseId", description = "企业ID", nullable = true) Long enterpriseId
	);
	
	@Action(version = FinVersion1.class, description = "查询企业融资汇总信息-进行中的融资")
	public PageList<ProcessFinanceApplication> inquireProcessFinanceApplicationPageList(
			@Parameter(name = "enterpriseId", description = "企业ID", nullable = true) Long enterpriseId,
			@Parameter(name = "productType", description = "业务类型", nullable = true) Integer productType,
			@Parameter(name = "page", description = "分页参数") PageCriteria page
	);
}
